浏览器安全机制有哪些
浏览器安全机制有以下这些:
沙箱:沙箱(Sandbox)是一种隔离对象/线程/进程的机制,控制浏览器访问系统资源的权限,从而达到保护用户的系统不被网页上的恶意软件侵入、保护用户系统的输入事件(键盘/鼠标)不被监视、保护用户系统中的文件不被偷取等目的。最初的浏览器沙箱是基于Hook实现的,后来的Chrome沙箱则是利用操作系统提供的一些安全机制实现的。
地址空间布局随机化:地址空间布局随机化(ASLR)是一项缓解缓冲区溢出问题的安全技术。其原理是将进程运行所需的系统核心组件和对象在内存中的分布随机化。为了防止攻击者利用在内存中跳转到特定地址的函数,ASLR技术随机排列进程的关键数据区域的位置,包括可执行的部分、堆、栈及共享库的位置。
JIT硬化:JIT硬化(Hardening)是一种防止对JIT引擎本身的滥用的机制。JIT引擎通常在可预测的地址空间中放置可执行代码,这无疑给攻击者提供了可乘之机。只要攻击者计算出可执行代码放置的地址,就极有可能通过代码覆盖来进行恶意活动。因此,必须有一项类似于ASLR的技术来保护JIT引擎,即JIT硬化。JIT硬化的常用技术包括代码库队列随机化、指令库队列随机化、常量合并、内存页面保护、资源限制等。
数据执行保护:数据执行保护(DEP)是一种阻止数据页执行代码的机制。将数据所在内存页标识为不可执行,当程序尝试在数据页面上执行指令时会抛出异常,而不是去执行恶意指令。
缓冲区安全检查:缓冲区安全检查(/GS)是一种不强制缓冲区大小限制的代码常用技术。通过将安全检查插入已编译代码中完成,检测某些改写返回地址的缓冲区溢出。
执行流保护:执行流保护(CFG)是对CFI(控制流完整性)的一个实用性实现,是一种编译器和操作系统相结合的防护手段,目的在于防止不可信的间接调用。可以有效防御基于虚表的攻击手段。
附加组件签名机制:附加组件签名机制是Firefox43版本开始正式采取的一项对其附加组件管理的机制。Mozilla根据一套安全准则对其附加组件进行验证并为其“签名”,需要签名的类型包括扩展,未被签名的扩展默认被禁用。这一机制对阻止来自第三方的恶意扩展起到了很好的作用。
写异或执行:是OpenBSD中富有代表性的安全特性之一。W^R内存保护机制能够让网页使用内存写入代码或执行代码,但不能够同时进行这两种操作,可以阻止某些缓冲区溢出的攻击。
内存垃圾收集器:是一种内存管理机制,由IE11的Memory Protector改进而来,首次在EdgeHTML和MSHTML中使用,采用标记清除(Mark-Sweep)算法对垃圾进行回收,能够阻止部分UAF(Use After Free)漏洞。